




PAULA ][

(Paula, take two!)






An Amiga-MODfile-Player
for the Atari TT & STE

Version 2.4
15.9.1994



Shareware by: Pascal Fellerich



Shareware
=========
Starting with version 2.0 Paula is shareware. That means that you may 
distribute and test this software freely. But if you use it regularly 
you have to register.

At the beginning Paula was a little utility to play modfiles which I 
wrote in some weeks. As the reactions on this little piece of software 
were very positive, I decided to rewrite the player completely which 
made it possible to integrate many new features. Paula has become a 
real powerful program which has no equivalent until now. So I decided 
to release it as shareware. You'll find details in the paragraph 
'Registration Procedure'.

The following files are part of the 'PAULA'-package and must remain 
unchanged and be distributed together:

1.  PAULA.APP   The main program (alternative names are PAULA.ACC or 
    PAULA.PRG)
2.  PAULA_D.TXT the german manual
3.  PAULA_E.TXT the english manual
4.  MP.TTP  ModPlay: a little utility to play modules even from CLI's.
5.  MP.C    the source code of ModPlay
6.  MP.PRJ  Project-File for use with Pure-C
7.  CHECKMOD.TTP    Checks if a module is OK and repairs corrupted 
    modfiles as far as this is possible.

If your version of PAULA needs a key(** The versions 2.0 to 2.3 and 
possibly also versions from 2.5 on need a key to reenable some blocked 
features.**): The file 'PAULA.INF' must not be given away as this file 
contains your registration data. Of course all modifications to one 
of these files are forbidden! Paula may be distributed via BBS and on 
'Public Domain' disks; however the shareware status of this software 
is not affected!

All rights reserved by P. Fellerich..
Contact address:    Pascal Fellerich
                    45, rue des Gents
                    L-3482 Dudelange
                    (Luxembourg)

E-Mail:             2:270/16.3 (Fido-Net)
                    fellerich@fido.lu (Internet)


Registration procedure
======================
Paula is shareware. This means that you have to pay for it when you 
use it regularly. The versions 2.0 up to 2.3 needed a key to enable all 
the features, a key you could only obtain by paying your registration 
fee. The version 2.4 does not have a key or any similar restrictions. 
To prevent excessive illegal use of this program it's up to you to 
decide how much to pay! If you want to register, please send me:

   Your address (legible, please)
    Name: <first name> <name>   (30 chars maximum)
    Addr: <street>              (30 chars maximum)
    City: <zip> <city>          (30 chars maximum)

   The shareware fee with a remark that it's for Paula. To avoid any 
    complications I only accept cash money (BEF/LUF, DM, US$, UK...)

I'll send you your personal key for Paula ][ which is needed for 
older and perhaps also  newer releases. If you have any questions 
and/or suggestions I'll be glad to help you.


Why Paula?
==========
Paula plays the so-called 'modfiles' using the STE/TT PCM sound chip. 
These modfiles, also called 'modules', originate from the Amiga which 
has a special four-channel PCM soundchip called 'Paula'.

Paula doesn't claim to be the only or the fastest modplayer available 
for the Atari, but it has a unique combination of a perfect GEM user 
interface and a highly sophisticated sound processing unit.


What does Paula?
===============
To avoid a rather lengthy description, here is a short list with 
Paula's features:
   Compatible to really all MOD-formats, ranging from the old 
    Soundtracker format to the new Protracker format.
   Three sampling frequencies are available: 12.5, 25, 50 KHz (when 
    using Paula on ST's with a little help from the sound-driver 
    'PETRA' it's 6, 9.6 and 12 KHz).
   Linear interpolation option giving a great improvement in sound 
    quality.
   Booster option, rising the S/N ratio by 6 dB.
   Completely independent pitch and speed tuning.
   Supports LZ5 or AFX packed modules.
   Real GEM - consequently it will run on any TOS-machine. This also 
    includes Atari's MultiTOS, Magix ...
   Simple and intuitive control
   Supports extended selection features of Selectric and Gemini
   Programmable like a simple CD player
   Random: random play of several modules.
   Repeat-switch: one module or a whole selection may be repeated 
    indefinitely
   CPU Load and position display


How it began...
===============
When I got my TT I wanted to hear the new sound chip. So I downloaded 
some modplayers for the STE and tried them. Unfortunately most of them 
crashed, and those which ran on the 68030 produced 'lo-fi' (low 
fidelity) sound. So I had to write a player on my own. But that was 
easier said than done - I had to acquire the knowledge of the 'real' 
PAULA-chip in the Amiga and of course of the STE/TT sound hardware 
simply because I wanted to port an old replay routine from the Amiga 
(D.O.C. replayroutine 2.0 from june 1986). Some weeks later Paula 1.0 
was 'up and running'. This release was still buggy and had limited 
capacities but it finally worked fine on the TT. After several 
optimizations and improvements I concluded the development at v1.5.

In april 92 a discussion in the fidonet BBS re-ignited the global 
interest in the module player, and I decided to continue the 
development. The versions 1.7 and 1.8 were released. In the meantime, 
the sound quality was greatly enhanced but still the user interface was 
lousy. So I rewrote the whole thing - that's it...


System requirements
===================
Paula runs on any machine that has:
1.  a TOS-compatible operating system, starting with TOS 1.4
2.  an STE-compatible sound hardware - or the sound driver PETRA

However, only the faster machines allow decent background use of 
Paula; a stock STE running at 8 MHz won't do 25 KHz sampling frequency. 
A MegaSTE at 16 MHz is fine, a TT is better.

To be able to run Paula on ST's without the PCM sound chip you need 
PETRA - a sound driver for Paula by Christian Limpach.


Installation
============
Paula may run as an accessory or as an application. With normal TOS 
versions the accessory mode is useful, under MultiTOS you may find it 
better to use it as a program. Of course you may use 'the Chameleon' 
(or any other good accessory loader) to load the ACC..
Under MultiTOS or Magix Paula may also run as a background task, but 
then you may not close it's main window without leaving the program!
Another useful thing is XCONTROL - you should have installed the 
'SOUND' cpx-module so that you can change the volume, treble, bass and 
balance. Moreover you should connect your computer to your stereo 
equipment (via the RCA jacks) to get the best possible sound.


User's Guide
============
After you have launched Paula you get a window containing the main 
dialog. This one is subdivided into 6 areas:
 1. the info line
 2. the Player & Sound Setup
 3. SampleFreq
 4. CPU Load
 5. Position
 6. the player's control keys

The control keys

These controls are hopefully the simplest. They carry the commonly 
used symbols you also find on a cassette tape recorder, so you should 
be familiar with those. Note that every key is marked with a little 
letter in the upper left corner - that's the keyboard shortcut. Press 
'L' to Load a file.

LOAD: First you must load a module. When you click on the LOAD-button 
you get the file selector in order to select a module. On 'OK' Paula 
immediately loads the module. If this operation was successful the info 
line of the window will show the text 'Stopped: <modfilename>'. If an 
error occurred you will be informed by a standard alert box. If you 
have installed 'Selectric' as a file selector, you may also specify 
more than one module!

STOP: Well, this one stops a module and resets the player. This also 
clears Paula's memory - if you had selected several modules Paula will 
forget them. The info bar shows 'Stopped: ...'. In accessory mode, 
closing the window in the stopped state also releases the memory 
allocated for the last loaded module.

PLAY: Starts the player. If you haven't selected a module Paula will 
prompt you to do so. If you press 'PLAY' when Paula is busy playing one 
of several modules it will skip to the next module. (Skip function).

PAUSE: Stops the player temporarily. The player is not reset! In that 
state you may also quit the accessory (close the window) without losing 
the current module. To continue, press PAUSE or PLAY.

REW: (REWIND) Jumps to the previous position in the module. This 
function works only if Paula is in the 'playing' or 'paused' state.

FF: (FAST FORWARD) Jumps to the next position in the module. This 
function too only works in play- or pause-mode.

!: (Exclamation sign) Invokes the SETUP-dialog which offers some more 
functions like pitch and speed tuning.

?: (Question mark) Some general informations about Paula. Through 
this dialog you also get the registration dialog. How to register is 
described some pages later (title: Registration procedure)

Try to familiarize yourself with these commands by simply trying them 
out! Whatever you do, you will not succeed in crashing Paula - even not 
on machines with memory protection.


The info line
=============
Paula uses the info line of the window to display it's current status 
as well as the title of the currently loaded module. Currently four 
states are defined:

Inactive:   Paula does nothing. No file is loaded and no memory is 
allocated. When you change resolutions Paula should preferably be in 
this mode to avoid memory loss or system crashes.

Stopped:    Paula has loaded a module. If you change resolution now you 
will lose the allocated memory because you didn't give Paula a chance 
to release it.

Paused:     Paula is waiting to continue. The FF and REW buttons work.

Playing:    Paula is busy - don't you hear that? If another program 
accesses the sound hardware Paula is stopped, of course. But as soon as 
the soundchip gets freed Paula tries to continue, which may take up to 
1 second. If not, this is a bug and should be reported. However you 
may manually relaunch the player by pressing the PAUSE-button twice.


SampleFreq
==========
You may choose the sampling frequency used by Paula. Currently there 
are three possibilities: 12.5, 25 and 50 KHz. The higher the sampling 
frequency the better the high frequency response. Theoretically the 
highest sound frequency is half the value of thesampling frequency 
(cf Shannon's sampling theorem). On the Atari hardware it's about 40% 
of the sampling frequency. When using 25 KHz samplefreq you get up to 
10 KHz sound frequency.

Changes in the sampling frequency are immediately effective. During 
the switching the sound is muted for a very short moment to avoid 
chirping and click noises.


Player & Sound Setup
====================
In that area you find two types of switches:
   switches to influence the sound synthesizer
   switches to change the replay modes

 Interpolate: Enables the realtime interpolation of the samples. This 
gives a much better sound quality but it requires a lot of CPU power. 
On a TT this is a must because the 68030 does multiplication and shift 
ops much faster than the 68000 CPU. By the way, this also applies to 
the 68020 - so if you have a 020-   board installed in your STE...

 Booster: Increases the output signal by 6 dB using a little trick. 
This improves the signal to noise ratio but it also introduces a 
certain amount of distorsions, especially when playing high-level 
signals. As these distorsions are mainly of the second order it 
shouldn't sound too awful.

 Protracker: Enables the protracker compatibility. In general, sound 
modules are upwards compatible so that a new player should play 
correctly an old module, but unfortunately the protracker introduced 
some features which are more critical. So you have the possibility to 
switch off some of the new protracker commands. However, old 15-
instrument modules are played with protracker-mode disabled, 
regardless of the switch position.

 Repeat: This switch has two meanings, depending on how many modules 
you have selected. If you have selected a single module, this module is 
repeated, else the whole bunch of modules is repeated. By the way, 
there are some modules which use 'jump' commands to build an endless 
loop. Paula recognizes these and interrupts them.

 Random: This is the random play function. If you have selected 
several modules, they will be played in random order - but every module 
only one time! After every module has been played, Paula stops or 
restarts the whole process, depending on the 'Repeat' switch.


CPU-Load display
================
This bargraph shows the amount of cpu time Paula needs for the sound 
synthesis. It is a relative display, 100% are always the total cpu 
time, no matter what processor you have. No Landmark or Norton - that's 
simply not informative enough.
At the right edge of the cpu load bargraph there is a little red box 
which flashes every time your machine was not fast enough.


Position
========
This display shows the current position in the module. It's using the 
hexadecimal format - you know, programmers do it in hex!


General instructions
====================
The main commands are mainly intuitive and should be easy to use. But 
there are also some special functions which are not so evident. These 
are:
   leaving the main dialog
   selecting multiple modules ('multiplay mode')
   key command logic
   hidden features

When you close the main window and Paula is an accessory, the player 
will continue. Moreover you may close this window by simply pressing 
the <Return> key - the same as in XCONTROL.ACC.

But if Paula runs as a program, closing the main window will 
terminate the program and the player will of course be stopped. so in 
PRG mode you can't quit by pressing <Return> - you must click on the 
closer-gadget of the window.

Multiple choice... The simplest way to select more than one module is 
to use wildcards. Instead of selecting a file in the file selector 
simply choose the right path then type the file specification, e.g. 
'A*.MOD'. This would play any module whose name starts with 'A'. If 
you simply want to have all modules played which are located in one 
directory, simply select that directory but don't enter a name. Paula 
will then automatically select any file which matches '*.MOD'.

...using Selectric:     If you use 'Selectric' as a file selector 
you may select multiple files (shift-key + mouse click), Paula will 
load them. You'll find details in the Selectric-manual.

...with the Desktop, Gemini, EASE etc: Install PAULA as an 
application for the files of the type 'MOD'. Paula does not only 
evaluate its command line but also understand  VA_START (or MP_START) 
messages.

Some words about the key command logic: Paula always tries to stay in 
the current mode. If a module is running and you load another one, the 
newly loaded module is immediately played.  If Paula was stopped when 
you select multiple modules, it will go into the 'pause'-mode. This has 
to be done that way because Paula will forget everything as soon as it 
enters the 'Stopped' mode. I suggest that you try these commands to 
familiarize yourself with it.

Extras: Paula is prepared for multitasking environments. This means:
   Paula evaluates its command line.
   Paula understands VA_START and own (MP_...) messages.
   Paula identifies already running copies of itself and passes the 
command line to the running copy, so that there's only one instance of 
the program running at the time(**  Not true for the accessory version: 
Paula can be installed as often as you like as an accessory.**).


Setup-Page dialog
=================
This dialog box is called with the '!'-command. It offers some nice 
features to manipulate the sound as well as the 'save'- function.

Pitch Bend (cent): This is a fine tuning function. 100 cent is one 
half tone, and you may (fine-)detune Paula by one half tone. The 
standard tuning corresponds to a 'NTSC'-Amiga with 7.15909 MHz clock 
frequency. To get the 'PAL'-Amiga tuning, set the pitch bender to -
10..-15 cent. The steps are 5 cent, a finer step is not needed as the 
human ear has already problems to detect a detuning by 5 cent..

Transpose: This is the coarse tuning function. It changes the tuning 
in half tone steps, maximum is 12 half tones which corresponds to one 
octave.

Frame Speed: This is the 'ticker' speed used as a speed reference in 
the module. On the Amiga this is the 50 Hz VBlank interrupt, so the 
standard setting is 50 Hz. Paula allows any value from half to double 
speed (25..100 Hz).

Save: Saves the current setup into the 'PAULA.INF' file and then 
leaves the dialog. Note that all settings are saved, the main dialog 
settings as well as your registration data.

Exit: Leaves the dialog without changing anything. However the 
changes you have made will not be undone.

Reset: Resets the three settings (Pitch fine/coarse, Speed) and 
leaves the dialog.


Info Page dialog:
=================
The unavoidable info box... and also a nice way to remind you 
sometimes of the fact that you are still using an unregistered copy!


Packed modules!
===============
Paula 2.1 supports LZ5 or AFX packed modules. To make such packed 
modules you can use LHARC 2.01 or higher! Suppose that you have all 
your modules gathered in the directory C:\MODFILES and your hard disk 
is getting full. Then launch LHARC.TTP and enter as a commandline: 'c 
C:\MODFILES\*.MOD'. The LHARC program will then pack all your modules, 
reducing them to approximatively to 75% of their original size. Paula 
will not make any difference between packed and unpacked modules, so 
this is completely transparent to the user.


Error messages
==============
Paula normally reports errors using standard alert boxes. To avoid 
problems with unwanted alert boxes popping up Paula won't complain 
about it's problems if it's main window is closed.
Let's assume you selected the modules, A.MOD, B.MOD and C.MOD; random 
mode is off. Paula starts playing A.MOD, the you close the window. 
After finishing with A.MOD, Paula tries to load B.MOD. If this does not 
succeed Paula will stop any further activities and will go into the 
'Inactive' state. If you invoke Paula and select 'LOAD', you will see 
the name an path of the module which caused the error.

If you get the message 'Corrupted MODfile' this means that the 
selected module cannot be played. In that case try the utility 
'CHECKMOD.TTP' which analyzes a module and also repairs it - if 
possible.


More informations
=================
A module contains up to 31 different samples which are also called 
'instruments'. To play a given sample at different pitches the Amiga 
simply varies the replay sampling frequency. The higher the sampling 
frequency the higher the note. As the Amiga has four independent 
sound channels, each one having it's own D/A converter it can play 
four different samples simultaneously without the help of the CPU. 
The Atari has only two channels (stereo L + R) which are not 
independent and only four fixed sampling rates. So another trick must 
be used to simulate the Amiga Chip - the 'direct digital synthesis', 
or 'resampling' as this process is more widely called. It's not 
difficult to understand: the sample data is not replayed at a 1:1 
rate but with an 1:R rate where R is a floating point number. If you 
want to play a sample at half speed R is 2 - every byte of the sample 
is output twice. If you want it to be at 75% of it's original speed, R 
is 1.5 - this time one byte is output twice, the second is output once 
and so on. Unfortunately the sampling data is output irregularly - 
which gives a distorted sound. There are two ways of eliminating these 
distorsions. Either make the step 'R' rather big (this would require 
very large samples originally sampled at a very high rate) or 
interpolate the output data. The best thing would be a spline 
interpolation but unfortunately this requires matrix operations, so 
Paula uses a simple linear interpolation. Don't confuse it with the 
'oversampling' of some other module players - they only double the 
output data and set the sound hardware to the double sampling frequency.
The resulting sound is of a very high quality - at 50 KHz sampling 
rate even better than the Amiga! This is due to the fact that the 
TT/STE has no 7 KHz low pass filter which cuts off the high 
frequencies. If the Amiga switches of this filter it also prod
uces more trebles but also more aliasing components. If you doubt 
about that take an Amiga, listen to it and read about the facts in the 
Hardware Reference Manual [2].

However the Amiga has a larger dynamic range due to it's four volume 
registers which introduce another 36 dB dynamic - but that is not the 
same thing as the signal-to-noise ratio which is always 48 dB for 8 bit 
systems (theoretically of course; some systems are disturbed by the RF 
present in the computer). The D/A converters used in the Amiga are 
sometimes called 'floating point converters'. In order to cope with 
this Paula has the 'Boost' option. This option simply simulates a 9 
bit D/A converter by using a nonlinear conversion scheme. The result 
is OK for low volume MODs but it introduces additional distorsion at 
high output levels.

If you don't mind about how the interpolation routine works, skip the 
following paragraph. If not - I hope you know how to read a C routine.

/* Fix-Point number, representing the replay step size */
typedef struct fxp {
    int ip;                     /* integer part (1/1) */
    int fp;                     /* fractional part (1/65536) */
} fixpoint;
/* Fetch a byte from the sample data and calculate the correct
 * in-between value.
 * Param: spl: pointer to the sample
 * index: index inside the sample as fixpoint number
 * volume: Amiga-Volumeregister value, 0..64
 * Return: resulting sample value.
 * Bereich: 14 bit (8 bit sample + 6 bit volume info)
 */
int get_samplevalue( char *spl, fixpoint index, int volume )
{
    int s1,s2;                  /* sample values sn and sn+1 */
    s1 = volume * spl[index.ip];
    s2 = volume * spl[index.ip+1];
    return (((s2-s1)*index.fp)/65536 + s1);
}

Besides in this routine the index has to be incremented (addition of 
two fix point numbers), the return value must be scaled and saved, 
and the sample must be checked if it has reached the end. As there 
are four channels which must be calculated the above routine is 
called 200,000 times per second. To make this run in real time a lot 
of optimizations must be done. Even the 68030 would be totally 
overworked if these routines were really written in C (that means: I 
am better than my C compiler...).


A really nice chapter: BUGS & LIMITATIONS!
==========================================
Collisions: Normally Paula should not interfere with any other 
program - but problems with other utilities accessing the sound 
hardware are unavoidable. As long as the 'opponent' is well programmed 
nothing will happen - except that Paula is stopped as long as the 
other program uses the sound chip. A simple test: run two Paulas... 
(if you can!)

Overload: When your computer is totally overloaded the internal 
timing is somewhat confused. As a consequence the moment when Paula 
writes into the sound registers is undetermined. So it may happen that 
the sound chip starts playing the wrong data - however the registers 
contain the right values! In that case, choose a lower sampling 
frequency or switch of the interpolation. Or have you forgotten to 
turn on the 68030 cache??

Resolution change: Before you change resolutions make sure that Paula 
is inactive. Call Paula, press 'STOP' and leave Paula again. Under 
MultiTOS the problem might be solved if the OS sends an AP_TERM message 
to every application - because this tells Paula to stop all activities.

Protracker 'CIA'-replay-speed: From version 2.2 on the CIA speed 
setup works exactly as in the original. The disadvantage is that some 
Noisetracker modules are now played incorrectly; so you have to switch 
off the protracker mode when you play such modules.

System crash on STE's: I know of two 1040STE computers on which Paula 
doesn't run. The symptoms: the computer freezes, the only escape being 
the reset button. This is likely to be a hardware problem as there is 
absolutely no link between the crashes and the modules played. Similar 
symptoms were experienced on a 1040STE with a 16MHz processor card - it 
crashed due to a cache problem. If you have such an STE - sorry, no 
remedy, it's a hardware bug! The version 2.4 has a TAS opcode removed, 
so the chance of being able to run Paula increases somewhat on these 
machines...


Internals
=========
GEM-message interface: Paula responds to the 'VA_START'-message 
(introduced by Gemini). This message contains a pointer (in msg[3] and 
msg[4]) which is evaluated by Paula:
   Null pointer or Pointer to an empty string: Same reaction as for 
    AC_OPEN
   Pointer to a string with a filename: Paula tries to load and play 
    that file.
   Pointer to a string with multiple filenames: Paula goes into 
    multiplay mode and plays all of these files.

The string is copied internally by Paula, so it may be local on the 
writer's side. However the memory must be readable - beware of the 
MultiTOS memory protection!!! The string also must contain complete 
path and name indications, NO WILDCARDS. The source code of MP 
(ModPlay) may serve you as an example.

From version 2.4 on there are more messages:
   MP_ACK (0x4800): Paula says OK! The previous command was 
    understood.msg[7] contains the version number of the program; 
    0x204 = v2.4
   MP_NAK (0x4801): Paula says NOT OK! The previous command wasn't 
    understood or rejected. msg[7] contains the version number of the 
    program.
   MP_START (0x4802): works identical to VA_START, but after having 
    taken over the command string Paula replies with a MP_ACK or MP_NAK 
    message, thus signalling the the memory area for the string may 
    be used for other purposes. This is very important in 
    multitasking systems.
   MP_STOP (0x4803): stops  Paula and releases the memory. The 
    window stays open. Paula replies with MP_ACK.
   MP_SHUTDOWN (0x4804): Stops and terminates Paula. In accessory mode 
    only the memory is released and the window is closed.

Vector stealing... Paula uses the IO7 interrupt of the 68901-MFP. Of 
course the 'XBRA' protocol is used, it's magic is 'PAUL'.

Memory usage: Paula needs some 45 KB for it's program code and data. 
On machines with a 68000 processor another 15 KB are used for the 
volume tables.

Emergency stop: Want to kill Paula? Well, don't forget to send an 
MP_SHUTDOWN message (GEM msg #0x4804) to it before doing so.

Speeeeed! To save CPU time on your TT Paula should be loaded into 
FastRAM and the processor cache should be enabled. Without cache 
Paula will probably have problems doing 50 KHz with interpolation... 
May the schwartz be with you!

Hardware: Timer A and the wonderful Yamaha sound chip are not 
touched. The key click and the wonderful 'bell' sound won't be 
affected. Moreover you may also use STSPEECH or any other utility to 
produce digital sound effects on the Yamaha chip.

Development: Paula 2 was developed using the Pure C compiler and the 
Pure Assembler. The 'real MODplayer', the replay routine is based on 
the 'Protracker 2.1B Player' of the Amiga Freelancers.

Thanx for the help...: helpful people were:
Joel Franois:  Amiga documentation, D.O.C. Replay Routine
Fridolin Koch:  Protracker Replay Routine, good mods
Georges Kesseler:   beta tester, optimization ideas, repeat-killer
Christian Limpach:  beta tester, ST-Sound driver!


MP - ModPlay Interface
======================
MP.PRG is a simple utility which gives you the possibility to launch 
modules from a command shell. MP simply sends a MP_START message to 
Paula. MP doesn't evaluate wildcards but it is aware of the ARGV method 
to deal with large command lines (link it with 'PCVSTART.O' when 
compiling it with Pure C). This is ideal for use with MintShel or 
Mupfel.

Also try to install MP as a application for '*.MOD'-files in the 
standard DeskTop - you may then listen to modules by double clicking 
them, provided PAULA is installed as an accessory!

MP is not an example for a good C programming style - it is very 
simple and straightforward. MP.TTP and MP.C are public domain.


CHECKMOD - repair corrupted mods
================================
Eventually Paula will refuse a module with the comment 'Corrupted 
MODfile'. In that case use CHECKMOD to check and maybe repair the 
module in question. Simply start CHECKMOD and type in the name of the 
module to test. Under TOS 2.06/3.06 drag the module's icon onto the 
CHECKMOD icon.

Checkmod will then read the module and control it's internal 
structures. It displays a list with the used instruments and reports 
the error. These may be:

Corrupted Pattern List: Sorry, but this module cannot be repaired. 
Short Sample: A sample is too short. If this affects only the last 
sample and if the difference isn't too big Checkmod will probably be 
successful. Paula tolerates 4 lacking bytes.

Superfluous Data in MODfile: No problem - this module simply has some 
garbage appended. Checkmod cuts it off, because Paula tolerates only up 
to 256 bytes of garbage.

After running Checkmod you get the text 'Save Module as:'. Press 
<Return> to leave, or enter a single dot '.' to save the module under 
it's current name. Or enter a new path and name to save the module 
using another name.



Bibliography
============
[1] Jankowski/Rabich/Reschke
    Atari Profibuch ST/STE/TT
    Sybex Verlag, ISBN 3-88745-888-5

[2] Amiga Hardware Reference Manual
    Addison-Wesley, ISBN 0-201-18157-6

[3] Thomsen
    Digitale Audiotechnik
    Franzis' Verlag, ISBN 3-7723-7151-5

[4] DDS - Direkte Digitale Synthese
    Elektor No257, Mai 1992, s.52ff

[5] Ulrich Michels
    dtv Atlas zur Musik, Band 1 (Akustik, Wellenlehre, Tonparameter)
    Deutscher Taschenbuch Verlag, ISBN 3-423-03022-4



Registration form
=================
I use PAULA, Version 2._ _ and want to register.

First, Last name:   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Street: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Zip, City:  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _

Some room for comments, ideas and bug reports (please tell me about 
your hardware when you have problems with the MOD player, this helps a 
lot):


